package newcodercyclecontrol;

import java.util.Arrays;
import java.util.Scanner;

public class Exercise44 {

    //    描述
//    输入两个升序排列的序列，将两个序列合并为一个有序序列并输出。
//
//    数据范围：
//            1≤n,m≤1000  ， 序列中的值满足0≤val≤30000
//    输入描述：
//    输入包含三行，
//    第一行包含两个正整数n, m，用空格分隔。n表示第二行第一个升序序列中数字的个数，m表示第三行第二个升序序列中数字的个数。
//    第二行包含n个整数，用空格分隔。
//    第三行包含m个整数，用空格分隔。
//    输出描述：
//    输出为一行，输出长度为n+m的升序序列，即长度为n的升序序列和长度为m的升序序列中的元素重新进行升序序列排列合并。
//    示例1
//    输入：
//            5 6
//            1 3 7 9 22
//            2 8 10 17 33 44
//    输出：
//            1 2 3 7 8 9 10 17 22 33 44
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int a = scan.nextInt();
        int b = scan.nextInt();
        int[] aarr = new int[a];
        int[] barr = new int[b];
        for (int i = 0; i < aarr.length; i++) {
            aarr[i] = scan.nextInt();
        }
        for (int i = 0; i < barr.length; i++) {
            barr[i] = scan.nextInt();
        }
        //可以用数组存放aarr和barr这两个数组，再正序输出
        int[] parr = new int[a + b];
        System.arraycopy(aarr, 0, parr, 0, a);
        System.arraycopy(barr, 0, parr, a, b);
        //关于arraycopy的用法可以参照
        //https://blog.csdn.net/Lilip_/article/details/124280524?spm=1001.2014.3001.5501

        Arrays.sort(parr);
        for (int i = 0; i < parr.length; i++) {
            System.out.print(parr[i] + " ");
        }
    }
}
